package com.example.bank.application;

import com.example.bank.common.Result;
import com.example.bank.exception.DailyLimitExceededException;
import com.example.bank.exception.InsufficientFundsException;
import com.example.bank.exception.InvalidCurrencyException;

import java.math.BigDecimal;

public interface TransferService {
    /**
     *
     * @param sourceUserId  当前用户id
     * @param targetAccountNumber  目标账户
     * @param targetAmount  转账金额
     * @param targetCurrency 货币类型
     */
    Result<Boolean> transfer(Long sourceUserId, String targetAccountNumber, BigDecimal targetAmount, String targetCurrency) throws Exception, DailyLimitExceededException;

}